let a=recur(10);

function recur(n,m=0){
    // console.log(n,m)
    if(n<0){
        return 10;
    }
    m++;
    return recur(n-1,m);
}
let sum=0;
function add(num){
    if(num<1){
        return 0;
    }
    // sum +=num+add(num-1)
    // return sum
    
    return num+add(num-1)
}


function add3(num){
    if(num===1){
        return 1;
    }
    return num+add3(num-1)
}

// 尾调用（尾递归），在空间上优化了，不需要占用栈空间，直接执行
function add4(num,sum=0){
    if(num===1){
        return num+sum;
    }
    return add4(num-1,num+sum)
}



console.log(add4(5))

function add2(num){
    let sum=0;
    while(num>0){
        sum+=num;
        num--
    }
    console.log(sum)
}
add2(5)
function headRecur(n){
    if(n<0){
        return 1;
    }
    headRecur(n-1)
}

function tailRecur(n){
    
}